#region Imported Namespaces



using System;
using System.Runtime.InteropServices;
using System.Text;



#endregion


namespace WtfManager.WindowsNative.Shell32
{
  public static class Shell32Methods
  {
    #region Methods



    [DllImport("shell32.dll", EntryPoint = "#18")]
    public static extern IntPtr ILClone(IntPtr pidl);


    [DllImport("shell32.dll", EntryPoint = "#25")]
    public static extern IntPtr ILCombine(IntPtr pidlA, IntPtr pidlB);


    [DllImport("shell32.dll", EntryPoint = "#17")]
    public static extern bool ILRemoveLastID(IntPtr pidl);


    [DllImport("shell32.dll")]
    public static extern Int32 SHGetDesktopFolder(out IShellFolder ppshf);


    [DllImport("shell32.dll")]
    public static extern Int32 SHGetFolderLocation(IntPtr hwndOwner, CSIDL nFolder, IntPtr hToken, UInt32 dwReserved,
                                                   out IntPtr ppidl);


    [DllImport("shell32.dll")]
    public static extern IntPtr SHGetFileInfo(string fileName, uint dwFileAttributes, ref SHFILEINFO psfi,
                                              int cbSizeFileInfo, FileInfo flags);


    [DllImport("shell32.dll")]
    public static extern IntPtr SHGetFileInfo(IntPtr pidl, uint dwFileAttributes, ref SHFILEINFO psfi,
                                              int cbSizeFileInfo, FileInfo flags);


    [DllImport("shell32.dll")]
    public static extern bool SHGetPathFromIDList(IntPtr pidl, StringBuilder pszPath);



    #endregion
  }
}